package ccgl.com.server;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;

import ccgl.com.dao.XxtjDao;
import ccgl.com.model.DateItem;
import ccgl.com.util.DateUtil;
import ccgl.com.util.flashreport.Graph;
import ccgl.com.util.flashreport.Set;

/**
 * 信息统计服务接口
 * 
 * @author Administrator
 * 
 */
public class XxtjServer {

	XxtjDao dao = new XxtjDao();

	public String getLineDate(String tjStar, String tjEnd, String timeLimit,
			String userId) throws ParseException {

		DateItem dateItem = new DateItem(tjStar, tjEnd);

		List<Set> setList = new ArrayList<Set>();
		Set set = null;
		while (true) {
			if ("week".equals(timeLimit)) {
				set = getSetItem(dateItem.getNextWeek(), userId);
			} else if ("quarter".equals(timeLimit)) {
				set = getSetItem(dateItem.getNextQuarter(), userId);
			} else if ("month".equals(timeLimit)) {
				set = getSetItem(dateItem.getNextMonth(), userId);
			} else if ("year".equals(timeLimit)) {
				set = getSetItem(dateItem.getNextYear(), userId);
			}

			if (set == null) {
				break;
			}

			setList.add(set);
		}

		Graph g = getColInitGraph(DateUtil.getDateStrC(dateItem.getStarDate())
				+ "~" + DateUtil.getDateStrC(dateItem.getEndDate()));
		g.setSetList(setList);
		return g.toXML();
	}

	/**
	 * 得到一个set 点
	 * 
	 * @param userId
	 * 
	 * @param nextWeek
	 * @return
	 */
	private Set getSetItem(DateItem dateItem, String userId) {
		if (!dateItem.checkDate()) {
			return null;
		}

		Set set = new Set();
		set.setName(DateUtil.getDateStr(dateItem.getStarDate(), "yyyy/MM/dd")
				+ "-"
				+ DateUtil.getDateStr(dateItem.getEndDate(), "yyyy/MM/dd"));
		set.setValue(String.valueOf(dao.getTotalSaleroom(dateItem, userId)));
		return set;
	}

	/**
	 * @param subCaption
	 * @return
	 */
	private Graph getColInitGraph(String subCaption) {
		Graph g = new Graph();
		g.setDivLineAlpha("20");
		g.setShowAlternateHGridColor("1");
		g.setAlternateHGridAlpha("5");
		g.setCaption("销售额统计");
		g.setSubCaption(subCaption);
		g.setxAxisName("时间");
		g.setyAxisName("销售额");
		g.setNumberPrefix("￥");
		g.setAlternateHGridColor("FCB541");
		g.setDivlinecolor("FCB541");
//		g.setDivlinecolor("ff5904");
		g.setFormatNumberScale("0");
		g.setChartRightMargin("60");
		g.setDecimalPrecision("2");
		g.setBaseFontSize("13");
		return g;
	}
}
